//
//  YDStatusModel.swift
//  YDWeibo01
//
//  Created by suibian on 16/8/13.
//  Copyright © 2016年 iitcast. All rights reserved.
//

import UIKit

class YDStatusModel: NSObject {
    

    /// 创建时间
    var created_at: String?
    /// 微博ID
    var id: Int64 = 0
    /// 微博信息内容
    var text: String?
    /// 微博来源
    var source: String?
//    用户模型 需要自己赋值 重写setvalue
    var user:YDUserModel?
//    转发微博
    var retweeted_status:YDStatusModel?
    // int	转发数
    var reposts_count: Int = 0
    // int	评论数
    var comments_count: Int = 0
    //int	表态数
    var attitudes_count: Int = 0
//    配图
    var pic_urls:[YDPictureInfo]?
    init(dict:[String:AnyObject]) {
        super.init()
        setValuesForKeysWithDictionary(dict)
    }
    
//    重写setvalue
    override func setValue(value: AnyObject?, forKey key: String) {
//        判断value是否有值 且是否能转成字典
        if key == "user"{
            guard let v = value as? [String:AnyObject]else{
                return
            }
            //            手动给user赋值
            user = YDUserModel(dict: v)
//            判断是否是转发微博
        }else if key == "retweeted_status"{
            guard let v = value as? [String:AnyObject]else{
                return
        }
//            手动给retweeted_status赋值
        retweeted_status = YDStatusModel(dict: v)
        }else if key == "pic_urls"{
//            判断value是否为nil 且可以转为一个数组
            guard let v = value as? [[String:AnyObject]] else{
            
            return
            }
//           遍历数组
//            创建临时可变数组
            var tempArray:[YDPictureInfo] = [YDPictureInfo]()
            for dic in v{
//               创建模型
                
            let pic = YDPictureInfo(dict: dic)
//                添加到数组
                tempArray.append(pic)
                
            }
//            赋值
            pic_urls = tempArray
            
        
        }
        
        
        else{
        
//        否则系统自动调用
            super.setValue(value, forKey: key)
        }
    }
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        
    }
}

 
